package com.cw.lang.common.utils;

/**
 * 分页工具类
 */
public class PageUtil {

    /**
     * 计算start
     *
     * @param pageNo   页码(首页为1)
     * @param pageSize 每页大小
     * @return
     */
    public static Long calStartIndex(Long pageNo, Long pageSize) {
        Long start = (pageNo - 1) * pageSize;
        return start >= 0 ? start : 0;
    }

    /**
     * 计算最后一条下标
     *
     * @param pageNo
     * @param pageSize
     * @param totalCount
     * @return
     */
    public static Long calEndIndex(Long pageNo, Long pageSize, Long totalCount) {
        Long end = calStartIndex(pageNo, pageSize) + pageSize - 1;
        return end >= totalCount ? totalCount - 1 : end;
    }
    /**
     * 计算当前页
     *
     * @param start   当前记录数
     * @param pageSize 每页大小
     * @return
     */
    public static Long calPageNum(Long start, Long pageSize) {
        Long pageNum = (start / pageSize) + 1;
        return pageNum;
    }

}
